export default class WeChatUtils {
    /**
     * 初始化微信登录功能
     * @param {function} onSuccess - 登录成功回调函数，返回 code
     * @param {function} onFail - 登录失败回调函数，返回错误信息
     */
    static login(onSuccess, onFail) {
        if (typeof wx === 'undefined') {
            console.error('微信环境未初始化，请确保在微信小游戏中运行');
            onFail && onFail('微信环境未初始化');
            return;
        }

        wx.login({
            success(res) {
                if (res.code) {
                    console.log('微信登录成功，code:', res.code);
                    onSuccess && onSuccess(res.code);
                } else {
                    console.error('微信登录失败:', res.errMsg);
                    onFail && onFail(res.errMsg);
                }
            },
            fail(err) {
                console.error('微信登录请求失败:', err);
                onFail && onFail(err);
            }
        });
    }

    /**
     * 检查登录状态
     * @param {function} onSuccess - 检查成功回调函数，返回登录状态
     * @param {function} onFail - 检查失败回调函数，返回错误信息
     */
    static checkLoginStatus(onSuccess, onFail) {
        if (typeof wx === 'undefined') {
            console.error('微信环境未初始化，请确保在微信小游戏中运行');
            onFail && onFail('微信环境未初始化');
            return;
        }

        wx.checkSession({
            success() {
                console.log('登录状态有效');
                onSuccess && onSuccess(true);
            },
            fail() {
                console.log('登录状态已失效');
                onSuccess && onSuccess(false);
            }
        });
    }

    /**
     * 分享到微信好友
     * @param {string} title - 分享标题
     * @param {string} imageUrl - 分享图片的 URL
     * @param {string} query - 分享链接的查询参数
     * @param {function} onSuccess - 分享成功回调函数
     * @param {function} onFail - 分享失败回调函数
     */
    static shareToFriend(title, imageUrl, query, onSuccess, onFail) {
        if (typeof wx === 'undefined') {
            console.error('微信环境未初始化，请确保在微信小游戏中运行');
            onFail && onFail('微信环境未初始化');
            return;
        }

        wx.shareAppMessage({
            title: title,
            imageUrl: imageUrl,
            query: query,
            success() {
                console.log('分享到好友成功');
                onSuccess && onSuccess();
            },
            fail(err) {
                console.error('分享到好友失败:', err);
                onFail && onFail(err);
            }
        });
    }

    /**
     * 分享到微信朋友圈
     * @param {string} title - 分享标题
     * @param {string} imageUrl - 分享图片的 URL
     * @param {function} onSuccess - 分享成功回调函数
     * @param {function} onFail - 分享失败回调函数
     */
    static shareToTimeline(title, imageUrl, onSuccess, onFail) {
        if (typeof wx === 'undefined') {
            console.error('微信环境未初始化，请确保在微信小游戏中运行');
            onFail && onFail('微信环境未初始化');
            return;
        }

        wx.shareAppMessage({
            title: title,
            imageUrl: imageUrl,
            success() {
                console.log('分享到朋友圈成功');
                onSuccess && onSuccess();
            },
            fail(err) {
                console.error('分享到朋友圈失败:', err);
                onFail && onFail(err);
            }
        });
    }
}
